home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 001-100 / 001-025 / 004 / bm / readme < prev    next >
Text File  |  1995-03-17  |  2KB  |  44 lines

  1. Bm is a fast pattern matching utility, intended to be almost
  2. identical in functionality to fgrep (ugh!) but much faster. It uses
  3. the Boyer-Moore algorithm, as described in the papers listed below:
  4.  
  5. D.E. Knuth, J.H. Morris, V.R. Pratt,"Fast Pattern Matching in Strings", 
  6. SIAM J. Comput., 6(2), June  1977, 323-350, 
  7.  
  8. Z. Galil,
  9. "On Improving the Worst Case Running Time of the Boyer-Moore String
  10. Matching Algorithm", 
  11. CACM, 22(9), Sept. 1979, ACM, 
  12.  
  13. R.S. Boyer, J.S. Moore,"A Fast String Searching Algorithm", CACM, 20(10), 
  14. Oct. 1977, 762-772, 
  15.  
  16. G. de V. Smit,"A Comparison of Three String Matching Algorithms", 
  17. Software - Practice and Experience, vol. 12,  1982, 57-66, 
  18.  
  19. The files are:
  20. Execute.c: search a file for the patterns
  21. Extern.h: declarations of externs
  22. GetPatFile.c: read in patterns from a file and set up a vector of
  23.     pattern descriptors
  24. Global.c: global variables (complement to Extern.h)
  25. MakeDesc.c: create a pattern descriptor for one pattern, including
  26.     skip tables, etc.
  27. MakeSkip.c: make the skip tables for one pattern
  28. Makefile: you can figure this one out for yourself
  29. MatchFound.c: what to do when you actually FIND a pattern - print it,
  30.     update flags, etc.
  31. MkDescVec.c: make a vector of pattern descriptors, given a string
  32.     of newline-separated patterns
  33. MoveResidue.c: when you come to the end of the buffer, move the
  34.     unsearched "residue" to the beginning and start again
  35. PrintLine.c: print the appropriate stuff after finding a match
  36. PutUsage.c: mini-man page.
  37. README: this file
  38. Search.c: the guts. Implements B-M algorithm given a pattern, skip
  39.     tables for the pattern, and a buffer to search
  40. bm.c: mainline. mostly interpreting the command line and tidying
  41.     up at the end. Calls Execute for each file.
  42. bm.h: constants
  43. bm.p: man page
  44.